package com.njts.programming;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author David GE
 * Date  2025/11/17
 * 在唱歌比赛中，可能有多名评委要给选手打分，分数是[0-100]之间的整数。选手最后得分为：去掉
 * 最高分、最低分后剩余分数的平均分，请编写程序能够录入多名评委的分数，并算出选手的最终得分
 */
public class Grade {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入评委的人数");
        int cnt = scanner.nextInt();
        // 评委打分
        double[] scores = new double[cnt];
        // 填入评委分数
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第"+(i+1)+"位评委的分数");
           scores[i] = scanner.nextDouble();
        }
        //记录原数组的状态
        double [] temp=scores;
        // 去掉最高分和最低分
        int max = getMax(temp);
        int min = getMin(temp);
        scores[max]=0;
        scores[min]=0;
        double avg =0.0;
        for (int i = 0; i < scores.length; i++) {
            avg = avg + scores[i];
        }
        System.out.println(Arrays.toString(scores));

        System.out.println("最终得分:"+(avg/(scores.length-2)));
    }
    public static int getMax(double[] arr){
        int maxIndex = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>arr[maxIndex]){
               // 找出最大值的位置(下标)
                maxIndex=i;
            }
        }
     return maxIndex;
    }

    public static int getMin(double[] arr){
        int maxIndex = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]<arr[maxIndex]){
                // 找出最小值的位置(下标)
                maxIndex=i;
            }
        }
     return maxIndex;
    }
}
